1. Field
The present invention relates to data communication. More particularly, the present invention relates to improving data throughput of a wireless communication system by re-sequencing data packets.
2. Background
The field of wireless communications has many applications including, e.g., wireless telephones, paging, wireless local loops, personal digital assistants (PDAs), Internet telephony, and satellite communication systems. A particularly important application is cellular telephone systems for mobile subscribers. (As used herein, the term “cellular” systems encompass both cellular and personal communications services (PCS) frequencies.) Various over-the-air interfaces have been developed for such cellular telephone systems including, e.g., frequency division multiple access (FDMA), time division multiple access (TDMA), and code division multiple access (CDMA). In connection therewith, various domestic and international standards have been established including, e.g., Advanced Mobile Phone Service (AMPS), Global System for Mobile (GSM), and Interim Standard 95 (IS-95). In particular, IS-95 and its derivatives, IS-95A, IS-95B, ANSI J-STD-008 (often referred to collectively herein as IS-95), and high-data-rate (HDR) systems for data, etc. are promulgated by the Telecommunication Industry Association (TIA), the International Telecommunications Union (ITU), and other well known standards bodies.
Cellular telephone systems configured in accordance with the use of the IS-95 standard employ CDMA signal processing techniques to provide highly efficient and robust cellular telephone service. An exemplary described system utilizing CDMA techniques is the cdma2000. The standard for cdma2000 is given in IS-2000 and has been approved by the TIA. The cdma2000 standard is compatible with IS95 systems in many ways. Another CDMA standard is the W-CDMA standard, as embodied in 3rd Generation Partnership Project “3GPP.” Another CDMA standard is Interim Standard IS-856, which is commonly referred to as a HDR system.
Transmission of digital data is inherently prone to interference, which may introduce errors into the transmitted data. Error detection schemes have been suggested to determine as reliably as possible whether errors have been introduced into the transmitted data. For example, it is common to transmit data in packets and add to each packet a cyclic redundancy check (CRC) field, for example of a length of sixteen bits, which carries a checksum of the data of the packet. When a receiver receives the data, the receiver calculates the same checksum on the received data and verifies whether the result of the calculation is identical to the checksum in the CRC field.
When the transmitted data is not used in a delay sensitive application, it is possible to request retransmission of erroneous data when errors are detected. However, when the transmission is used in a delay sensitive application, such as, e.g., in telephone lines, cellular phones, remote video systems, etc., it may not be possible to request retransmission.
Convolutional codes have been introduced to allow receivers of digital data to correctly determine the transmitted data even when errors may have occurred during transmission. The convolutional codes introduce redundancy into the transmitted data and pack the transmitted data into packets in which the value of each bit is dependent on earlier bits in the sequence. Thus, when errors occur, the receiver can still deduce the original data by tracing back possible sequences in the received data.
To further improve the performance of a transmission channel, interleavers are used to re-order bits in the packet during coding. Thus, when interference destroys some adjacent bits during transmission, the effect of the interference is spread out over the entire original packet and can more readily be overcome by the decoding process. Other improvements may include multiple-component codes that encode the packet more than once, in parallel or in series, or a combination thereof. For example, it is known in the art to employ an error correction method that uses at least two convolutional coders in parallel. Such parallel encoding is commonly referred to as turbo coding.
For multiple-component codes, optimal decoding is often a very complex task, and may require large periods of time not usually available for on-line decoding. Iterative decoding techniques have been developed to overcome this problem. Rather than determining immediately whether received bits are zero or one, the receiver assigns each bit a value on a multilevel scale representative of the probability that the bit is one. Data represented on the multilevel scale is referred to as “soft data,” and iterative decoding is usually soft-in/soft-out, i.e., the decoding process receives a sequence of inputs corresponding to probabilities for the bit values and provides as output corrected probabilities, taking into account constraints of the code. Generally, a decoder that performs iterative decoding uses soft data from former iterations to decode the soft data read by the receiver. During iterative decoding of multiple-component codes, the decoder uses results from the decoding of one code to improve the decoding of the second code. When parallel encoders are used, as in turbo coding, two corresponding decoders may conveniently be used in parallel for this purpose. Such iterative decoding is carried out for a plurality of iterations until it is believed that the soft data closely represents the transmitted data. Those bits that have a probability indicating that they are closer to one binary are assigned binary zero, and the remaining bits are assigned binary one.
Turbo coding represents an important advancement in the area of forward error correction (FEC). There are many variants of turbo coding, but most types of turbo coding use multiple encoding steps separated by interleaving steps combined with the use of iterative decoding. This combination provides previously unavailable performance with respect to noise tolerance in a communications system. Namely, turbo coding allows communications at levels of energy-per-bit per noise power spectral density (Eb/No) that were previously unacceptable using the existing forward error correction techniques.
Many communications systems use forward error correction techniques and therefore would benefit from the use of turbo coding. For example, turbo codes could improve the performance of wireless satellite links, in which the limited downlink transmit power of the satellite necessitates receiver systems that can operate at low Eb/No levels.
In some exemplary CDMA systems, such as HDR systems, the data may be transmitted in packets. Packets carrying data traffic may be transmitted in sub-packets. Due to interference in data transmission, the remote station may not successfully decode the encoded data that is transmitted in the first sub-packet. Therefore, data sub-packets are redundantly transmitted until the mobile decodes the data packet. Redundant sub-packets are then soft-combined at the receiver. Redundancy refers to the substantially similar information carried by each sub-packet. Redundant representations may be generated either through repetition or through additional coding. The process of soft combining allows the recovery of corrupted bits. Through the process of soft combining, wherein one corrupted sub-packet is combined with another corrupted sub-packet, the transmission of repetitious and redundant sub-packets can allow a system to transmit data at a guaranteed minimum transmission rate.
Transmissions of the sub-packets to the remote station may be in a staggered pattern so that transmission gaps occur between the redundant sub-packets. The delay between sub-packets provides an opportunity for the target remote station to process decoding the sub-packet before the arrival of the next sub-packet of the same packet. If the remote station is able to successfully decode the sub-packet before the arrival of the next sub-packet and to verify the CRC bits of the decoded result before the arrival of the next sub-packet, the remote station may transmit an acknowledgment (ACK) signal to the base station. If the base station could demodulate and interpret the ACK signal sufficiently in advance of the next scheduled redundant sub-packet transmission, the base station need not send any redundant sub-packet. The base station may then transmit a new data packet to the same remote station or to another remote station during the slot period that had been designated for the cancelled redundant sub-packets.
Base stations transmit the sub-packets in a predetermined sequence. However, the packets successfully decoded at a target remote station would not be in the same sequence. Therefore, the target remote station has to re-sequence sequence the decoded packets before sending them to higher layers, without unnecessary delays.
There is, therefore, a need in the art for providing for enhanced data throughput by efficiently re-sequencing and transmitting data.